package com.meiya.flink.interfaces;

import com.meiya.flink.config.AppConfig;

/**
 * 标签处理器接口
 * 所有标签处理逻辑都应实现此接口
 */
public interface TagProcessor {
    /**
     * 获取标签ID
     * @return 标签ID
     */
    Long getMId();

    /**
     * 获取标签名称
     * @return 标签名称
     */
    String getTagName();

    /**
     * 生成标签计算SQL
     * 
     * @return 标签计算SQL
     */
    String generateTagSQL();
    
    /**
     * 获取会话窗口间隔时间（分钟）
     * 默认使用AppConfig中的配置值
     * 
     * @return 会话窗口间隔时间（分钟）
     */
    default int getSessionWindowIntervalMinutes() {
        return AppConfig.getSessionWindowIntervalMinutes();
    }
}
